package com.softeem.lam;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;

/**
 * lambda表达式的使用
 * 从jdk1.8开始进行使用
 */
public class Demo_01 {

    public static void main(String[] args) {
        //使用一个接口来实现两个对象之间的比较
        //如果我们要直接使用接口来给其进行对比的话,需要使用匿名内部类的方法来进行实现
        //然后重写的方法中将我们需要的参数进行传递然后,在进行比较
        Comparator<Dog> d = new Comparator<Dog>() {
            @Override
            public int compare(Dog o1, Dog o2) {
                return o1.getAge() - o2.getAge();
            }
        };
        System.out.println(d.compare(new Dog("大黄", 3, "黄色"),
                                new Dog("大黑", 5, "黑色")));


        //使用lambda表达式可以省略我们对于方法的重写以及调用的过程
        //只需要给方法进行传参以及方法内部的计算返回信息处理
        ArrayList<Dog> list = new ArrayList<Dog>();
        list.add(new Dog("大黄", 3, "黄色"));
        list.add(new Dog("大黑", 5, "黑色"));
        list.add(new Dog("小黄", 1, "黄色"));
        Collections.sort(list,(o1, o2) -> o1.getAge() - o2.getAge());
    }
}
